<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>iomodule: xiomodule_example.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="HTML_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="xlogo_bg.gif"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">iomodule
   </div>
   <div id="projectbrief">Xilinx SDK Drivers API Documentation</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',false,false,'search.php','Search');
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('xiomodule__example_8c.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">xiomodule_example.c File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<div class="textblock"><p>This file contains a self test example using the IO Module driver (XIoModule) and hardware device. </p>
<p>Please reference other device driver examples to see more examples of how the interrupts, timers and UART can be used by a software application.</p>
<dl class="section note"><dt>Note</dt><dd></dd></dl>
<p>None</p>
<pre></pre><pre>MODIFICATION HISTORY:
Ver   Who  Date     Changes
<hr/>

1.00a sa   07/15/11 First release
2.4   ms   01/23/17 Added xil_printf statement in main function to
                    ensure that "Successfully ran" and "Failed" strings
                    are available in all examples. This is a fix for
                    CR-965028.
</pre> </div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:a49f5325ad368c16f4f82e1530c4d1508"><td class="memItemLeft" align="right" valign="top">XStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiomodule__example_8c.html#a49f5325ad368c16f4f82e1530c4d1508">SetUpInterruptSystem</a> (<a class="el" href="struct_x_i_o_module.html">XIOModule</a> *XIOModuleInstancePtr)</td></tr>
<tr class="memdesc:a49f5325ad368c16f4f82e1530c4d1508"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function connects the interrupt handler of the IO Module to the processor.  <a href="#a49f5325ad368c16f4f82e1530c4d1508">More...</a><br /></td></tr>
<tr class="separator:a49f5325ad368c16f4f82e1530c4d1508"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d6264927eb02cdac505c92079fa9e03"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiomodule__example_8c.html#a2d6264927eb02cdac505c92079fa9e03">DeviceDriverHandler</a> (void *CallbackRef)</td></tr>
<tr class="memdesc:a2d6264927eb02cdac505c92079fa9e03"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is designed to look like an interrupt handler in a device driver.  <a href="#a2d6264927eb02cdac505c92079fa9e03">More...</a><br /></td></tr>
<tr class="separator:a2d6264927eb02cdac505c92079fa9e03"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a840291bc02cba5474a4cb46a9b9566fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiomodule__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main</a> (void)</td></tr>
<tr class="memdesc:a840291bc02cba5474a4cb46a9b9566fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">This is the main function for the IO Module example .  <a href="#a840291bc02cba5474a4cb46a9b9566fe">More...</a><br /></td></tr>
<tr class="separator:a840291bc02cba5474a4cb46a9b9566fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45629b072206c0e732e7b8f3fec42112"><td class="memItemLeft" align="right" valign="top">XStatus&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="xiomodule__example_8c.html#a45629b072206c0e732e7b8f3fec42112">IOModuleExample</a> (u16 DeviceId)</td></tr>
<tr class="memdesc:a45629b072206c0e732e7b8f3fec42112"><td class="mdescLeft">&#160;</td><td class="mdescRight">This function is an example of how to use the IO Module driver component (<a class="el" href="struct_x_i_o_module.html" title="The XIOModule driver instance data. ">XIOModule</a>) and the hardware device.  <a href="#a45629b072206c0e732e7b8f3fec42112">More...</a><br /></td></tr>
<tr class="separator:a45629b072206c0e732e7b8f3fec42112"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a id="a2d6264927eb02cdac505c92079fa9e03"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2d6264927eb02cdac505c92079fa9e03">&#9670;&nbsp;</a></span>DeviceDriverHandler()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void DeviceDriverHandler </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>CallbackRef</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is designed to look like an interrupt handler in a device driver. </p>
<p>This is typically a 2nd level handler that is called from the IO Module interrupt handler. This handler would typically perform device specific processing such as reading and writing the registers of the device to clear the interrupt condition and pass any data to an application using the device driver. Many drivers already provide this handler and the user is not required to create it.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">CallbackRef</td><td>is passed back to the device driver's interrupt handler by the <a class="el" href="struct_x_i_o_module.html" title="The XIOModule driver instance data. ">XIOModule</a> driver. It was given to the <a class="el" href="struct_x_i_o_module.html" title="The XIOModule driver instance data. ">XIOModule</a> driver in the <a class="el" href="group__iomodule__v2__2.html#ga65efd62e9193f589aa82dfa26fc90142" title="Makes the connection between the Id of the interrupt source and the associated handler that is to run...">XIOModule_Connect()</a> function call. It is typically a pointer to the device driver instance variable if using the Xilinx Level 1 device drivers. In this example, we do not care about the callback reference, so we passed it a 0 when connecting the handler to the <a class="el" href="struct_x_i_o_module.html" title="The XIOModule driver instance data. ">XIOModule</a> driver and we make no use of it here.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

</div>
</div>
<a id="a45629b072206c0e732e7b8f3fec42112"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45629b072206c0e732e7b8f3fec42112">&#9670;&nbsp;</a></span>IOModuleExample()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XStatus IOModuleExample </td>
          <td>(</td>
          <td class="paramtype">u16&#160;</td>
          <td class="paramname"><em>DeviceId</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function is an example of how to use the IO Module driver component (<a class="el" href="struct_x_i_o_module.html" title="The XIOModule driver instance data. ">XIOModule</a>) and the hardware device. </p>
<p>This function is designed to work without external hardware devices to cause interrupts. It may not return if the IO Module is not properly connected to the processor in either software or hardware.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">DeviceId</td><td>is device ID of the IO Module Device, typically XPAR_&lt;IOMODULE_instance&gt;_DEVICE_ID value from xparameters.h</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS to indicate success, otherwise XST_FAILURE</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p class="reference">References <a class="el" href="group__iomodule__v2__2.html#ga67914ab7abde581aa2214b997923938d">XIOModule_Initialize()</a>.</p>

<p class="reference">Referenced by <a class="el" href="xiomodule__example_8c.html#a840291bc02cba5474a4cb46a9b9566fe">main()</a>.</p>

</div>
</div>
<a id="a840291bc02cba5474a4cb46a9b9566fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a840291bc02cba5474a4cb46a9b9566fe">&#9670;&nbsp;</a></span>main()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int main </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This is the main function for the IO Module example . </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>XST_SUCCESS to indicate success, otherwise XST_FAILURE.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p class="reference">References <a class="el" href="xiomodule__example_8c.html#a45629b072206c0e732e7b8f3fec42112">IOModuleExample()</a>.</p>

</div>
</div>
<a id="a49f5325ad368c16f4f82e1530c4d1508"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a49f5325ad368c16f4f82e1530c4d1508">&#9670;&nbsp;</a></span>SetUpInterruptSystem()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">XStatus SetUpInterruptSystem </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="struct_x_i_o_module.html">XIOModule</a> *&#160;</td>
          <td class="paramname"><em>XIOModuleInstancePtr</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>This function connects the interrupt handler of the IO Module to the processor. </p>
<p>This function is separate to allow it to be customized for each application. Each processor or RTOS may require unique processing to connect the interrupt handler.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">None.</td><td></td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>None.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>None. </dd></dl>

<p class="reference">References <a class="el" href="group__iomodule__v2__2.html#ga65efd62e9193f589aa82dfa26fc90142">XIOModule_Connect()</a>.</p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Copyright &copy; 2015 Xilinx Inc. All rights reserved.</li>
  </ul>
</div>
</body>
</html>
